// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'

Vue.config.productionTip = false

//注册vuex
import Vuex from "vuex";
Vue.use(Vuex)
//创建仓库
const store  = new Vuex.Store({
  //严格模式
  strict:true,
  //state会转绑给当前store作为属性
  state:{count:0},
  //getters会转绑给当前store作为属性
  //仓库内部的计算属性 会随着依赖的变化而产生变化
  getters:{
    flag(state){
      return state.count%2===0 ? "偶数":"奇数"
    }
  },
  mutations:{
    //mutation 内部 只能同步的修改仓库中的数据
    add(state,{step,flag}){
        state.count+=step
    }
  },
  actions:{
    add(store,{step,flag}){
      setTimeout(()=>{
        store.commit("add",{step,flag})
      },100)
    }
  }
})
//注册仓库
/* eslint-disable no-new */
new Vue({
  el: '#app',
  components: { App },
  template: '<App/>',
  store
})
